﻿Imports System.Data.OleDb

Public Class LeeggoedVanArtikelsDal

    Private Const SELECT_LEEGGOED_VAN_ARTIKELS As String = "SELECT l.Id, l.ArtikelId, a.Artikelcode, " & _
        " a.Omschrijving, a.Barcode, a.Prijs, a.StatiegeldEuro, l.LeeggoedArtikelId " & _
        " FROM LeeggoedVanArtikels l INNER JOIN Artikels a ON l.ArtikelId = a.Id"

    Private Const SELECT_LEEGGOED_VAN_ARTIKELS_FOR_UPDATE As String = "SELECT Id, ArtikelId, LeeggoedArtikelId " & _
        " FROM LeeggoedVanArtikels"

    Private Const SELECT_LEEGGOEDARTIKELS As String = "SELECT Id, Artikelcode, Omschrijving, Barcode, Prijs " & _
        " FROM Artikels WHERE IsLeeggoed <> 0"

    Public Shared Sub FillLeeggoedVanArtikels(ByVal ds As ArtikelLijstDataSet)
        Dim conn As New OleDbConnection(My.Settings.fairshopConnectionString)
        Try
            Dim cm As New OleDbCommand(SELECT_LEEGGOED_VAN_ARTIKELS, conn)
            Dim da As New OleDbDataAdapter(cm)
            da.Fill(ds, ds.LeeggoedVanArtikels.TableName)
        Finally
            conn.Close()
        End Try
    End Sub

    ''' <summary>
    ''' Gebruikt om de dropdown voor de keuze van het leeggoed op te vullen
    ''' </summary>
    ''' <param name="ds"></param>
    Public Shared Sub FillLeeggoedArtikels(ByVal ds As ArtikelLijstDataSet)
        Dim conn As New OleDbConnection(My.Settings.fairshopConnectionString)
        Try
            Dim cm As New OleDbCommand(SELECT_LEEGGOEDARTIKELS, conn)
            Dim da As New OleDbDataAdapter(cm)
            ds.Artikels.Clear()
            da.Fill(ds, ds.Artikels.TableName)
        Finally
            conn.Close()
        End Try
    End Sub

    ''' <summary>
    ''' Werk leeggoed van artikels bij.
    ''' </summary>
    ''' <param name="artikelsDataset"></param>
    Public Shared Sub UpdateLeeggoedVanArtikels(ByVal artikelsDataset As ArtikelLijstDataSet)
        If (Not artikelsDataset.HasChanges()) Then Return
        Dim conn As New OleDbConnection(My.Settings.fairshopConnectionString)
        Try
            conn.Open()
            Dim da As New OleDbDataAdapter(SELECT_LEEGGOED_VAN_ARTIKELS_FOR_UPDATE, conn)
            Dim cb As New OleDbCommandBuilder(da)
            da.Update(artikelsDataset, artikelsDataset.LeeggoedVanArtikels.TableName)
        Finally
            conn.Close()
        End Try
    End Sub

End Class
